1. Field of the Invention
The present invention relates to a memory management device and method, in which a storage device having memory units different in access speed is used as a block device, and arbitrary data can be assigned to memory units having high-speed access speed, a program for implementing the memory management method, and a memory management system.
2. Description of the Related Art
Conventionally, flash memories have been widely used as storage media for digital cameras and the like. The flash memories include a binary type configured such that each memory cell takes two values and a multi-value type configured such that each memory cell takes more than two values. The multi-value flash memory having a larger storage capacity per unit cell than the binary flash memory is advantageous in that it is possible to increase capacity at low costs. However, the multi-value flash memory requiring complicated control for multi-value processing is disadvantageous in that access speed is lower.
Recently, there has been proposed a hybrid flash memory as a combination of the multi-value flash memory and the binary flash memory. The hybrid flash memory makes it possible to increase both capacity and access speed at low costs.
Further, there has been proposed a storage device which has both a binary flash memory and a multi-value flash memory and stores management data in the binary flash memory and user data in the multi-value flash memory (see e.g. Japanese Patent Laid-Open Publication No. 2001-306393). Furthermore, there has been proposed a data storage system in which flash memories of a plurality of types or binary and multi-value types are used such that memory areas of the respective types can be distinguishably accessed according to the intended purpose of use (see e.g. Japanese Patent Laid-Open Publication No. H11-31102).
In a case where a flash memory is used as a storage medium of a digital camera, a host system stores image files in the flash memory using a FAT file system. In the FAT file system, the flash memory is divided into a file allocation table, a directory entry area, and a data area, for use. The file allocation table and the directory entry area are areas to be accessed in any file access. Particularly in a large-capacity storage medium, the frequency of access to these two areas tends to increase, and hence the speed of access to these areas largely influences file access speed.
On the other hand, there is a demand for arranging specific files in a high-speed area. For example, when a large number of files are managed e.g. in a digital camera, a management file, called a catalog file, for managing the storage relation between directories and files is generated (see e.g. Japanese Patent Laid-Open Publication No. H09-44394). This management file is frequently referred to or recorded for newly generating photographed images and image browsing. Further, since the management file stores information for determining the number of a file to be generated next e.g. when the power of the digital camera is turned on, access to the management file is absolutely necessary immediately after power-on so as to determine whether or not first shooting can be executed. Therefore, it is preferable to dispose the data area of the management file in the high-speed area so as to speed up shooting operation and reproduction operation as well as to reduce time required after power-on to enable shooting.
However, the data storage system disclosed in Japanese Patent Laid-Open Publication No. H11-31102 is configured such that a host system accesses a high-speed area or a low-speed area while distinguishing between the two areas using an address as viewed from the host system. For this reason, in a case where the host system writes data at a desired access speed, addresses for data storage are limited.
Further, when the FAT file system is used, the file allocation table and the directory entry area to be preferably located in the high-speed area are disposed at arbitrary addresses according to the capacity of a medium, a format, and the status of files.
For this reason, in a case where the locations of a high-speed area and a low-speed area are fixed by respective addresses as in the above-mentioned data storage system, an arbitrary area to be used in the FAT file system cannot be located in the high-speed area.
On the other hand, in order to enable a client of the file system to dispose a desired file in the high-speed area, the FAT file system is required to provide a special command. Further, this method is undesirable for the interface of a file system assuming the use of a generally standard interface.
Furthermore, even if the interface of the FAT file system is provided with a command for disposing a desired file in the high-speed area, the client of the file system cannot always recognize or discriminate a file to be accessed at a high speed as such. Therefore, it is difficult to dispose a file to be accessed at a high speed in the high-speed area.